package com.jiaquyun.jcps.mode.api

import com.jiaquyun.jcps.entity.*
import com.jiaquyun.jcps.mode.BaseApi
import com.lemlin.network.HttpServiceApi
import com.lemlin.network.HttpServiceData
import io.reactivex.Observable
import retrofit2.http.*

interface OrderApi : HttpServiceApi {

    /**
     * 订单列表
     * @param token 身份
     * @param lat 经度
     * @param lng 纬度
     * @param type 订单类型 2=待取货,3=待送达
     * */
    @GET("/rider/rider_order/send_order_list")
    fun orderList(
        @Header("token") token: String,
        @Query("lat") lat: String,
        @Query("lng") lng: String,
        @Query("type") type: String
    ): Observable<OrderListResponse>

    /**
     * 确认接单
     * @param token 身份
     * @param riderOrderId 订单id
     * */
    @FormUrlEncoded
    @POST("/rider/rider_order/receiving_orders")
    fun orderReceiving(
        @Header("token") token: String,
        @Field("rider_order_id") riderOrderId: String
    ): Observable<HttpServiceData>

    /**
     * 确认取货
     * @param token 身份
     * @param riderOrderId 订单id
     * */
    @FormUrlEncoded
    @POST("/rider/rider_order/withdrawal")
    fun orderWithdrawal(
        @Header("token") token: String,
        @Field("rider_order_id") riderOrderId: String,
        @Field("order_sn") orderSn: String
    ): Observable<HttpServiceData>


    /**
     * 确认送达
     * @param token 身份
     * @param riderOrderId 订单id
     * */
    @FormUrlEncoded
    @POST("/rider/rider_order/service_order")
    fun orderService(
        @Header("token") token: String,
        @Field("rider_order_id") riderOrderId: String,
        @Field("images") images: String
    ): Observable<HttpServiceData>

    /**
     * 获取订单列表tab数量
     * @param token 身份
     * */
    @GET("/rider/rider_order/order_list_tap")
    fun orderListTab(
        @Header("token") token: String
    ): Observable<OrderTabResponse>

    /**
     * 订单详情
     * @param token 身份
     * @param lat 经度
     * @param lng 纬度
     * @param riderOrderId 订单id
     * */
    @GET("/rider/rider_order/send_order_details")
    fun orderDetails(
        @Header("token") token: String,
        @Query("lat") lat: String,
        @Query("lng") lng: String,
        @Query("rider_order_id") riderOrderId: String
    ): Observable<OrderDetailsResponse>

    /**
     * 完成订单详情
     * */
    @GET("/rider/rider_order/order_details_complete")
    fun orderDetailsToday(
        @Header("token") token: String,
        @Query("rider_order_id") riderOrderId: String
    ): Observable<OrderTodayDetailsResponse>

    /**
     * 接单记录
     * @param page 页码
     * @param limit 条数
     * */
    @GET("/rider/rider_order/order_log")
    fun orderLog(
        @Header("token") token: String,
        @Query("page") page: String,
        @Query("limit") limit: String
    ): Observable<OrderTodayListResponse>

}